package com.skt.domain.PO;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 系统配置 - 持久化对象（PO）
 * <p>
 * 对应数据库表：system_config
 * 用于存储平台级键值对配置（如押金比例、逾期费率等）。
 * 注意：不用于存储富文本公告（公告应使用独立 notice 表）。
 */
@Data
@Accessors(chain = true)
@TableName("system_config")
public class SystemConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 配置键（唯一），如 "rental_deposit_rate"
     */
    @TableField("config_key")
    private String configKey;

    /**
     * 配置值（字符串形式存储）
     */
    @TableField("config_value")
    private String configValue;

    /**
     * 配置说明
     */
    @TableField("description")
    private String description;

    /**
     * 创建时间（自动填充）
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间（自动填充）
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}